सी में कार्य करने के लिए सरणी पासिंग

सी में, विभिन्न सामान्य समस्याएं हैं जिन्हें एक फ़ंक्शन के लिए एक ही प्रकार के एक से अधिक चर को पारित करने की आवश्यकता होती है। उदाहरण के लिए, एक ऐसे फ़ंक्शन पर विचार करें जो आरोही क्रम में 10 तत्वों को क्रमबद्ध करता है। इस तरह के फ़ंक्शन को मुख्य फ़ंक्शन से वास्तविक मापदंडों के रूप में 10 संख्याओं को पारित करने की आवश्यकता होती है। यहां, 10 अलग -अलग संख्याओं की घोषणा करने और फिर फ़ंक्शन में पास होने के बजाय, हम एक सरणी को घोषित और इनिशियलाइज़ कर सकते हैं और इसे फ़ंक्शन में पास कर सकते हैं। यह सभी जटिलता को हल करेगा क्योंकि फ़ंक्शन अब किसी भी संख्या में मूल्यों के लिए काम करेगा। जैसा कि हम जानते हैं कि Array_Name में पहले तत्व का पता है। यहां, हमें ध्यान देना चाहिए कि हमें उस फ़ंक्शन में केवल उस सरणी का नाम पारित करने की आवश्यकता है जो एक सरणी को स्वीकार करने के लिए है। औपचारिक पैरामीटर के रूप में परिभाषित सरणी स्वचालित रूप से एक वास्तविक पैरामीटर के रूप में परिभाषित सरणी नाम द्वारा निर्दिष्ट सरणी को संदर्भित करेगा। फ़ंक्शन के लिए एक सरणी पास करने के लिए निम्न सिंटैक्स पर विचार करें।

pafMKSanaRnaama(sarnai);//paasaiMga sarnai

एक फ़ंक्शन को घोषित करने के तरीके जो एक तर्क के रूप में एक सरणी प्राप्त करता है

एक फ़ंक्शन को घोषित करने के तरीके जो एक तर्क के रूप में एक सरणी प्राप्त करता है

फ़ंक्शन को घोषित करने के 3 तरीके हैं जो एक तर्क के रूप में एक सरणी प्राप्त करने के लिए है।

पहला तरीका:

tamajanataDRjalacama samaaraeh(pzakar sarnai[])

ब्लैंक सबस्क्रिप्ट नोटेशन की घोषणा करना [] व्यापक रूप से उपयोग की जाने वाली तकनीक है।

दूसरा तरीका:

tamajanataDRjalacama samaaraeh(pzakar sarnai[Aakar])

वैकल्पिक रूप से, हम सबस्क्रिप्ट नोटेशन में आकार को परिभाषित कर सकते हैं []।

तीसरा तरीका:

tamajanataDRjalacama samaaraeh(pzakar *sarnai)

आप एक सूचक की अवधारणा का भी उपयोग कर सकते हैं। पॉइंटर चैप्टर में, हम इसके बारे में जानेंगे।

सी भाषा एक सरणी गुजरने के लिए उदाहरण उदाहरण के लिए कार्य करता है

उदाहरण

#samaahitaF<PsaTidiAayaAae.Pca>
paunaZ maaEnarze(paunaZ Aagamana[],paunaZ Aakar){
paunaZ maina=Aagamana[0];
paunaZ maIM=0;
kurftae(maIM=1;maIM<Aakar;maIM++){
yaDi(maina>Aagamana[maIM]){
maina=Aagamana[maIM];
}
}//AMta ka kurftae
naivaZtanama maina;
}//AMta ka samaaraeh

paunaZ mauqyaF(){
paunaZ maIM=0,maina=0;
paunaZ naMbar[]={4,5,7,3,8,9};//oaaeSanaa ka sarnai

maina=maaEnarze(naMbar,6);//paasaiMga sarnai saaYa Aakar
mauDznama("nyaunatama saMqyaa hI %paunaZ \n",maina);
naivaZtanama 0;
}

आउटपुट

nyaunatama saMqyaa hI 3

C सरणी को सॉर्ट करने के लिए फ़ंक्शन

उदाहरण

#samaahitaF<PsaTidiAayaAae.Pca>
riKta baulabaulaeRkiRtarh(paunaZ[]);
riKta mauqyaF ()
{
paunaZ Aagamana[10] = { 10, 9, 7, 101, 23, 44, 12, 78, 34, 23};
baulabaulaeRkiRtarh(Aagamana);
}
riKta baulabaulaeRkiRtarh(paunaZ P[]) //sarnai P[] AMk kae Aagamana.
{
paunaZ maIM, jae,AsYaayai;
kurftae(maIM = 0; maIM<10; maIM++)
{
kurftae(jae = maIM+1; jae<10; jae++)
{
yaDi(P[jae] < P[maIM])
{
AsYaayai = P[maIM];
P[maIM] = P[jae];
P[jae] = AsYaayai;
}
}
}
mauDznama("CpaaEZ kzmabaoD tatva saucai ...\n");
kurftae(maIM = 0; maIM<10; maIM++)
{
mauDznama("%paunaZ\n",P[maIM]);
}
}

आउटपुट

CpaaEZ kzmabaoD tatva saucai ...
7
9
10
12
23
23
34
44
78
101

फ़ंक्शन से सरणी लौटना

जैसा कि हम जानते हैं कि, एक फ़ंक्शन एक से अधिक मूल्य नहीं लौटा सकता है। हालाँकि, अगर हम रिटर्न ए, बी, सी के रूप में रिटर्न स्टेटमेंट लिखने का प्रयास करते हैं; तीन मानों (ए, बी, सी) को वापस करने के लिए, फ़ंक्शन अंतिम उल्लिखित मान को वापस कर देगा जो हमारे मामले में सी है। कुछ समस्याओं में, हमें एक फ़ंक्शन से कई मान वापस करने की आवश्यकता हो सकती है। ऐसे मामलों में, फ़ंक्शन से एक सरणी वापस आ जाती है। एक सरणी लौटना फ़ंक्शन में सरणी को पारित करने के समान है। सरणी का नाम फ़ंक्शन से लौटा दिया जाता है। एक फ़ंक्शन को एक सरणी लौटाने के लिए, निम्न सिंटैक्स का उपयोग किया जाता है।

paunaZ * YnaDbajapavaDRDMUma() {
//kuC kYana;
naivaZtanama MtataMlaRjalacama;
}

फ़ंक्शन से लौटे सरणी को स्टोर करने के लिए, हम एक पॉइंटर को परिभाषित कर सकते हैं जो उस सरणी को इंगित करता है। हम उस पॉइंटर को बढ़ाकर सरणी को पार कर सकते हैं क्योंकि पॉइंटर शुरू में सरणी के आधार पते की ओर इशारा करता है। निम्नलिखित उदाहरण पर विचार करें जिसमें सॉर्ट किए गए सरणी को वापस करने वाला एक फ़ंक्शन होता है।

उदाहरण

#samaahitaF<PsaTidiAayaAae.Pca>
paunaZ* baulabaulaeRkiRtarh(paunaZ[]);
riKta mauqyaF ()
{
paunaZ Aagamana[10] = { 10, 9, 7, 101, 23, 44, 12, 78, 34, 23};
paunaZ *pai = baulabaulaeRkiRtarh(Aagamana), maIM;
mauDznama("CpaaEZ kzmabaoD tatvaaeM ...\n");
kurftae(maIM=0;maIM<10;maIM++)
{
mauDznama("%paunaZ\n",*(pai+maIM));
}
}
paunaZ* baulabaulaeRkiRtarh(paunaZ P[]) //sarnai P[] AMk kae Aagamana.
{
paunaZ maIM, jae,AsYaayai;
kurftae(maIM = 0; maIM<10; maIM++)
{
kurftae(jae = maIM+1; jae<10; jae++)
{
yaDi(P[jae] < P[maIM])
{
AsYaayai = P[maIM];
P[maIM] = P[jae];
P[jae] = AsYaayai;
}
}
}
naivaZtanama P;
}

आउटपुट

CpaaEZ kzmabaoD tatva saucai ...
7
9
10
12
23
23
34
44
78
101

◀ पीछे अगला ▶